home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / comms / ppppkt05.zip / ppppkt.doc < prev    next >
Text File  |  1994-11-16  |  36KB  |  813 lines

  1. File:  PPPPKT.DOC
  2.  
  3.         PPPPKT Ver 0.50   Copyright 1994  -  [totally] ÆΩεσöµε Software
  4.  
  5.  
  6. Usage:
  7. =====
  8.  
  9. C:\> PPPPKT [/Option Value ][/Option Value ]...
  10.  
  11. Options [default]  (any order,  / = DOS SwitchChar)
  12.         b - Board [1]                   v - Interrupt Vector [60h]
  13.         i - IP number [0.0.0.0]         g - Gateway [0.0.0.0]
  14.         m - Subnet Mask [func(i,g)]     t - Interface Type [80]
  15.         ? - Help [off]                  d - Disable nodeaddress door
  16. Numbers (max. 255) specified as:  either  0xNN, NNh (hex)  or  NNN (dec).
  17.  
  18.  
  19. Copyright, Licence, Warranty Disclaimer:
  20. =======================================
  21.  
  22.         See the FINE PRINT section at the end of this document.
  23.  
  24.  
  25. Document Organization:
  26. =====================
  27.  
  28.         Synopsis.                       PPPPKT is ...
  29.  
  30.         Options.                        Complete summary.
  31.  
  32.         Getting Started.                Overview.
  33.  
  34.         Detailed Comments.              Underview.
  35.  
  36.         Technical Summary.              Oh, is that right ?
  37.  
  38.         Caveats.                        PPPPKT is *not* ...
  39.  
  40.         Acknowledgements.               Without whom ...
  41.  
  42.         FINE PRINT.                     Read this !
  43.  
  44.  
  45. Synopsis:
  46. ========
  47.  
  48.             PPPPKT is a TSR `shim' or `adapter' providing a Class 1
  49.           ethernet packet driver interface over the Novell LAN
  50.           WorkPlace for DOS SLIP_PPP driver.  It is suitable for use
  51.           over those PPP or SLIP links which carry only IP packets.
  52.  
  53.             PPPPKT lets you use certain applications, which were
  54.           designed to be used on an ethernet connection, over a PPP
  55.           (or SLIP) connection.  This combines the benefits of the
  56.           stable and fully-featured Novell SLIP_PPP driver with a
  57.           minimum of memory overhead.  A typical installation of
  58.           the necessary TSR's looks like this:
  59.  
  60.            Psp   Size   Name       Description        Hooked Vectors
  61.           ----  ------ ---------- ------------------- --------------
  62.           1670  18,592  LSL       Link Support Layer    08 2F E6
  63.           1AC7  23,648  SLIP_PPP  ODI Link Driver       0C E1
  64.           208E   1,536  PPPPKT    Adapter               60
  65.  
  66.           for a total memory usage of about 43 Kbytes.
  67.  
  68.             The overall performance varies with the application.  It
  69.           may work very well, may work slowly (either passably or
  70.           unacceptably), or it may not work at all.  Your mileage
  71.           depends on the application; you have to test drive them.
  72.           The file APPHINTS.TXT contains performance evaluations,
  73.           configuration hints and ftp sources for some TCP/IP
  74.           applications that have been tested with PPPPKT.
  75.  
  76.             Why use PPPPKT instead of an ODI-based application?
  77.           Some of your favourite applications may not have been
  78.           ported to ODI, or the ODI version may be unsuitable.
  79.  
  80.  
  81. Options:
  82. =======
  83.  
  84.             The options supported by PPPPKT must appear after the
  85.           DOS SwitchChar (represented here by '/' as is customary).
  86.           All of the options are followed by one or more numerical
  87.           parameters.  These numbers may be specified in either hex
  88.           or decimal form.  The hex forms 0xNN, 0NNh and NNh are
  89.           all recognized.  A brief summary of the options is
  90.           presented first, followed by a more detailed discussion.
  91.           (The IP addresses are examples; use your own.)
  92.  
  93.           Option        Meaning                 Example
  94.           ------        -------                 -------
  95.  
  96.           /b <board#>   network logical Board   /b 1
  97.  
  98.           /v <vector>   software interrupt      /v 60h
  99.                         Vector
  100.  
  101.           /i <ip#>      IP address of your PC   /i 130.244.17.25
  102.  
  103.           /d            Disable nodeaddress door
  104.  
  105.           /g <gateway>  IP address of your      /g 132.244.12.9
  106.                         internet Gateway
  107.  
  108.           /m <mask>     subnetting Mask         /m FFh.FFh.0.0
  109.  
  110.           /t <type>     interface Type          /t 14
  111.  
  112.   Board:    This is the logical board number for the PPP frame
  113.           provided by the SLIP_PPP driver, in the context of
  114.           Novell LAN WorkPlace (LWP) and the NET.CFG file.
  115.           Board numbering starts at 1 (not 0), as per the ODI
  116.           specification.  Note that PPPPKT does not have a
  117.           NET.CFG entry, but if it did this would be the board
  118.           that PPPPKT "bind"s to.
  119.           DEFAULT:  1.
  120.  
  121.   Vector:   The software interrupt vector to be hooked by PPPPKT.       
  122.           Must be in the range 60h ... 80h.  Typically interrupts
  123.           60h through 67h are reserved for user purposes; it's
  124.           a good idea to choose a free one in this range.
  125.           DEFAULT:  60h.
  126.  
  127.   IP#:      The IP (Internet Protocol) address for your end of
  128.           of the PPP connection.  If you are using a static
  129.           address, it will be assigned to you by your network
  130.           administrator.  If you use dynamic address negotiation,
  131.           the address varies from one connection to the next, and
  132.           is assigned to you by the remote software from a pool
  133.           of addresses.  The IP# used by PPPPKT is determined by
  134.           the following hierarchy, listed from highest to lowest
  135.           precedence:
  136.  
  137.           (1)  Command line /i option.
  138.               This is useful for dynamic addressing, or for
  139.               static addresses once put in a batch file.
  140.  
  141.           (2)  Taken from the NET.CFG file.  [If /i absent.]
  142.               You can specify the IP# by adding an appropriate
  143.               "node address" line to the "Link Driver SLIP_PPP"         
  144.               section of your NET.CFG file.  Use:
  145.  
  146.              node address       NNNNNNNN0000
  147.  
  148.               where NNNNNNNN is your IP#, in hex, with no dots.
  149.               For example 130.244.17.25 leads to the entry
  150.  
  151.              node address       82F411190000
  152.  
  153.               This is a convenient `back door' if your IP# is
  154.               fixed.
  155.  
  156.           (3)  Taken direct from memory image of SLIP_PPP TSR.
  157.               [If "node address" is 0 or absent from NET.CFG,
  158.               or if "/d" flag is set.]  Currently this method
  159.               is a bit of a kluge, but is very useful when it
  160.               works.  The dword at offset 5112h in the image
  161.               of SLIP_PPP v4.1 (R41-1, 921113) seems to hold
  162.               the IP number after a PPP connection is made.
  163.               This may not be universal so it is given least
  164.               priority.  Try if it works for you (see the
  165.               "Detailed Comments" section).
  166.  
  167.   Disable:  This flag turns off the "node address" doorway
  168.           (method (2) above) for specifying your IP#.  This is
  169.           only of interest if method (3) works.
  170.           DEFAULT:  no flag.
  171.  
  172.   Gateway:  The IP address of a local computer that connects
  173.           your university, organization, or internet provider
  174.           to the rest of the internet.
  175.           DEFAULT:  0.0.0.0
  176.  
  177.   Mask:     The subnetting mask, to be used by your ethernet
  178.           application over the PPP link.  It is determined
  179.           automatically by PPPPKT based on your PC's and
  180.           gateway's IP numbers.
  181.           DEFAULT:  function of <ip#> and <gateway>.
  182.  
  183.   Type:     Packet driver interface type, within Class 1 of the
  184.           FTP Software spec, which PPPPKT reports to applications
  185.           in response to a driver_info() function call.  Normally
  186.           you need *not* use this option.  Possible types of
  187.           interest:
  188.                  14  -- used by Merit's ETHERPPP
  189.                  71  -- ODI to packet driver adapter (ODIPKT)
  190.                  80  -- SLIP simulated ether
  191.           This option does not affect the actual operation of
  192.           PPPPKT in any way.  It is provided as a convenience in
  193.           the unlikely event that an application will configure
  194.           itself for improved performance with a particular type.
  195.           DEFAULT: 80.
  196.  
  197.  
  198.             Note that, at a minimum, you *must* provide your IP#
  199.           and gateway information to PPPPKT.  It is crucial that
  200.           the IP# be correct, and that the IP#, gateway and netmask
  201.           parameters used by PPPPKT and to configure applications
  202.           be identical.
  203.  
  204.             The space between an /Option and the parameter following
  205.           it is optional.  However you must leave a space before
  206.           each / delimiter.  The command line is case-insensitive.
  207.  
  208.             Users of DOS 3.3 (truly `the best DOS ever') will be
  209.           pleased to know that a user-defined SwitchChar is supported.
  210.  
  211.  
  212. Getting Started:
  213. ===============
  214.  
  215.             This section is an overview.  Further details appear in
  216.           the next section.
  217.  
  218.             In order to use this software, you need:
  219.  
  220.        *    A PPP or SLIP account for internet connection.  For
  221.           brevity, this document usually refers just to PPP.
  222.  
  223.        *    If you are using a dial-up connection over a modem,
  224.           you'll need a communications, or dialer, program to
  225.           initiate, and close, the connection.
  226.  
  227.        *    Two Novell LAN WorkPlace for DOS programs:
  228.           LSL.COM       ...     Link Support Layer
  229.           SLIP_PPP.COM  ...     Link Driver
  230.             For testing, the following are helpful:
  231.           TCPIP.EXE     ...     ODI TCP/IP protocol stack
  232.           PING.EXE      ...     ODI ping application
  233.  
  234.        *    Properly configured NET.CFG file.
  235.  
  236.        *    TCP/IP application programs that use a Class 1 packet
  237.           driver.  They must be properly configured.  They must use
  238.           no protocols other than IP, ARP and RARP.
  239.  
  240.        *    A  TERMIN.COM  program is helpful, to terminate/unload
  241.           PPPPKT (i.e. remove it from memory).
  242.  
  243.             Once you have obtained all the necessary software, a
  244.           simple outline of one way to proceed is the following:
  245.  
  246.         o   Create a directory to hold the Novell programs listed
  247.           above, your NET.CFG file, TERMIN and PPPPKT.  Even if
  248.           you're a current user of LWP, it is a good idea to keep
  249.           these things separate, so as not to `break' your existing
  250.           setup.  Let's call this directory C:\PPP here, to be
  251.           definite.
  252.  
  253.         o   Prepare a NET.CFG file, specially for PPP, in this
  254.           directory.
  255.  
  256.         o   Go through a `dry run.'  From this directory load
  257.                  LSL
  258.                  SLIP_PPP
  259.                  PPPPKT /g <gateway> /i <ip#> [ ... ]
  260.           Do not use the /m option here!  For dynamic addresses,
  261.           use a typical value of the <ip#>.  Note down the "Mask"
  262.           parameter reported by PPPPKT when it loads.  It will
  263.           look something like this:  FF.FF.00.00 hex.  (On the
  264.           command line, FF would be written FFh, 0xFF or 255.)
  265.             Unload the TSR's with
  266.                 TERMIN 0x60
  267.                 SLIP_PPP u
  268.                 LSL u
  269.  
  270.         o   Determine your <netmask> parameter.  The details of
  271.           this depend on whether you have a static or dynamically
  272.           assigned IP#.
  273.  
  274.             For a static (fixed) IP#, use the value noted above
  275.           to configure the netmask in applications.  You don't
  276.           need to use the /m option when loading PPPPKT, since it
  277.           will always be computed for you.
  278.  
  279.             For dynamic addresses there is a very slight potential for
  280.           difficulty because the netmask must be consistent with all
  281.           of the IP numbers that might be assigned.  Exactly what
  282.           this `consistency' means is discussed in the "Technical
  283.           Summary" section.  Here are two simple ways to proceed:
  284.            1.  If your PPP provider or remote software tells you what
  285.           netmask to use, try using that value.
  286.            2.  Use the netmask noted above in the dry run.  It
  287.           should work in virtually all circumstances.
  288.             If this does not work, applications will not believe they
  289.           are on an ethernet, and won't send packets anywhere, etc.
  290.           In general the netmask, gateway IP, and your IP# must be
  291.           mutually consistent.  Given your gateway, you must pick a
  292.           suitable netmask which will work with any IP# that you
  293.           could be assigned.  To do this by hand, take the netmask
  294.           calculated by PPPPKT, and replace one or more of the
  295.           rightmost 1's in its binary representation by 0's.  Use
  296.           this value with the /m option when loading PPPPKT, and to
  297.           configure applications, until things are consistent and
  298.           working.  For example, suppose PPPPKT calculated the
  299.           netmask FF.FF.C0.00 hex, and it did not work.  Then you
  300.           should try FF.FF.80.00 hex, followed by FF.FF.00.00 hex,
  301.           etc.
  302.  
  303.         o   Configure your application program(s).  Depending on
  304.           the app, this may involve editing a configuration file,
  305.           running the program and going into a Setup menu, etc.
  306.           The main point to be made, at this time, is that when
  307.           configuring the `subnetting mask' option for the app, you
  308.           should use the value determined as indicated above.  Also
  309.           be sure the gateway IP and your IP# are the same as used
  310.           to load PPPPKT.
  311.  
  312.         o   Either dialing `by hand' or with a script, get your
  313.           communications package to dial the phone, log in to the
  314.           PPP account, and get the remote host to the point of
  315.           negotiating the PPP connection.  Then exit the
  316.           communications program without closing the connection.
  317.  
  318.         o   CD to C:\PPP and load LSL, SLIP_PPP and TCPIP in that
  319.           order.  Wait 5 - 10 seconds and try to ping a local
  320.           machine using its IP address (each NN represents a
  321.           number in the range 1..255) : 
  322.                 PING NN.NN.NN.NN
  323.           Do not use a domain name here.  If the connection is
  324.           working, PING should reply with something like:
  325.                 NN.NN.NN.NN is alive
  326.           Also, running SLIP_PPP again with the "r" flag
  327.                 SLIP_PPP r
  328.           will show some statistics indicating if packets have
  329.           been sent and received.
  330.  
  331.         o   Unload the TCPIP stack; it is not needed further:
  332.                 TCPIP u
  333.  
  334.         o   For users of dynamic IP addressing, determine your
  335.           IP# for the session, if necessary by using SLIP_PPP's
  336.           "c" flag:
  337.                 SLIP_PPP c
  338.           It's the 8-digit hex number under "Local IP address".
  339.           See also the "IP# Specification Strategy" part of the
  340.           next section.
  341.  
  342.         o   Load PPPPKT.  
  343.                 PPPPKT  /g <gateway> [/i <ip#> /m <netmask> ...]
  344.  
  345.         o   Run your application(s).
  346.  
  347.         o   To close the session, unload the TSR's as indicated
  348.           above and hang up the phone.
  349.  
  350.  
  351. Detailed Comments:
  352. =================
  353.  
  354.   * Communications.
  355.  
  356.             You can try whatever package you are familiar with, for
  357.           example MS-Kermit, Procomm, Telix, etc.  The advantage of
  358.           MS-Kermit is that it is both free, and (Ver. 3.13)
  359.           supports TCP/IP in a way that is relatively easy to
  360.           configure.  Thus, telnet inside MS-Kermit can be one of
  361.           your applications.  To get started quickly, though, stick
  362.           to a package you know.
  363.  
  364.           There are also a number of `dialer' programs available
  365.           on internet which may do what is needed.  For example,
  366.           COMTOOL in:
  367.  
  368.           mvmpc9.ciw.uni-karlsruhe.de:/nos/sliplog/sliplog.zip
  369.  
  370.   * Novell LAN WorkPlace Programs.
  371.  
  372.             The information related to this subsection is provided
  373.           merely as a curiosity, and may be incorrect.  It is
  374.           entirely the responsibility of the potential user (you)
  375.           to determine and meet all legal requirements for the use
  376.           of the Novell software.  Novell LWP for DOS is a commercial
  377.           networking package, and is copyright by Novell, Inc.
  378.  
  379.             If you are a current LWP user then you might already
  380.           have the necessary files listed above, and you may be
  381.           interested to know that updated current versions are
  382.           available on Novell's ftp site:
  383.  
  384.           ftp.novell.com:/pub/pub2/UNIXCONN/LWDOS42/
  385.  
  386.             The necessary files are also available in a sample
  387.           package.  It is apparently for general distribution to
  388.           all who are interested.  Try:
  389.  
  390.           sjf-lwp.novell.com:/lwp4dos/ppp_sample/pppsampl.zip
  391.                                                 /old/lsl.com
  392.                                                      slip_ppp.com
  393.  
  394.           or:
  395.  
  396.           novell.felk.cvut.cz:
  397.           /appl/pub/mirrors/netwire/sjf-lwp/lwp4dos/ppp_samp/pppsample.zip
  398.  
  399.             Compatible versions of the Novell programs are:
  400.  
  401.                       LWP for DOS Ver.          Sample Ver.
  402.  
  403.           LSL         v1.21 (920130)            v2.00 (920904)
  404.           SLIP_PPP    v4.1 (R41-1, 921113)      v4.1 (R41-1, 921113)
  405.           TCPIP       v4.12 (R412-2a, 940404)   v4.1 (R41-1h, 930402)
  406.           PING        v4.12 (R412-2a, 940404)   v4.1 (R41-1, 921113)
  407.  
  408.             If you use LAN WorkPlace for WINDOWS, you must obtain
  409.           the DOS drivers.  Store, and run, them separately from
  410.           the Windows drivers.  The latter will not maintain the
  411.           PPP connection by themselves, as they require Novell's
  412.           Windows dialer support.
  413.  
  414.             If you will use PPPPKT in tandem with TCPIP.EXE, please
  415.           read this paragraph.  There are three types of ODI
  416.           protocol stacks: prescan, bound and default.  As the names
  417.           suggest, a prescan stack is passed all incoming packets
  418.           and chooses which if any it will consume, bound stacks
  419.           receive specific protocols not eaten by a prescan stack
  420.           (if present), and finally a default stack is handed any
  421.           packets not used by prescan and bound stacks.  This
  422.           version of PPPPKT is a default stack.  It can remain
  423.           loaded in memory, with TCPIP.EXE taking control of IP
  424.           packets when it is loaded too.  I.e., if both are loaded
  425.           simultaneously, only TCPIP.EXE will work.
  426.  
  427.   * NET.CFG.
  428.  
  429.             Here is a relatively minimal example NET.CFG file for
  430.           use with PPP and PPPPKT.  A similar file, NET_CFG.SAM,
  431.           with most of the comments removed is included with the
  432.           PPPPKT package.  Copy it to NET.CFG and edit it with your
  433.           own parameters.
  434.  
  435.   ;---------
  436.   ; C:\PPP\NET.CFG:
  437.   Link Support
  438.         Max Boards      1       ; if only 1 logical board
  439.         Max Stacks      3       ; enough for PPPPKT and TCPIP.EXE
  440.         MemPool         1024    ; only for TCPIP.EXE, size as needed
  441.         Buffers         8 1600  ; *crucial*
  442.  
  443.   Link Driver SLIP_PPP
  444.         int     4               ; Hardware IRQ for serial port
  445.         port    3E8             ; I/O address for serial port
  446.         node address    NNNNNNNN0000    ; <ip#>0000, hex, no dots
  447.         baud    38400           ; DTE CONNECT speed
  448.         mru     1500
  449.         accm    00000000        ; Async Control Character Map
  450.         accomp  yes             ; Address&Control field compression
  451.         pcomp   yes             ; Protocol field compression
  452.         open    active
  453.         tcpipcomp vj
  454.         ipaddr  NN.NN.NN.NN     ; <ip#> (or 0.0.0.0 for dynam addr)
  455.         frame   PPP                     ; board #1
  456.         Protocol IP     0800    PPP
  457.  
  458.   Protocol TCPIP
  459.         PATH SCRIPT     C:\NETWORK\LWP\SCRIPT   ; For LWP users
  460.         PATH PROFILE    C:\NETWORK\LWP\PROFILE  ;      "
  461.         PATH LWP_CFG    C:\NETWORK\LWP\HSTACC   ;      "
  462.         PATH TCP_CFG    C:\NETWORK\LWP\TCP      ;      "
  463.         ip_router       GG.GG.GG.GG             ; <gateway>
  464.         ip_netmask      255.MM.MM.0             ; <mask>
  465.         ip_address      NN.NN.NN.NN             ; your <ip#>
  466.         tcp_window      4096
  467.         tcp_sockets     12
  468.         udp_sockets     8
  469.         raw_sockets     1
  470.         bind            SLIP_PPP
  471.   ;---------
  472.  
  473.           Explanation of some of these entries may be helpful.
  474.  
  475.         o Max Boards:  Normally you will only have one logical
  476.           board, so setting this to 1 saves a bit of memory.
  477.  
  478.         o Max Stacks:  3 is enough to run PPPPKT and TCPIP
  479.           together.  To load more protocol stacks, increase this.
  480.  
  481.         o MemPool:  This entry is needed only by TCPIP.EXE,
  482.           minimum of 1024.  Omit it for just PPPPKT.
  483.  
  484.         o Buffers:  PPPPKT requires overhead space beyond the
  485.           size of an ethernet packet's data, in order to work with
  486.           ODI.  It is critical to have sufficiently many buffers of
  487.           adequate size, say 1600 bytes, *not* 1500.
  488.  
  489.         o int, port:  The example is set for COM3.  Use the
  490.           values for the COM port your modem / serial port is on.
  491.           The standard COM port assignments are:
  492.                          COM1    COM2    COM3    COM4
  493.                  int       4       3       4       3
  494.                  port    3F8     2F8     3E8     2E8
  495.  
  496.         o node address:  This is the `back door' discussed in
  497.           the "Options" section; a way to tell PPPPKT your IP#
  498.           without using the command line.  Use your hex IP# without
  499.           0x or h, dots removed, and with 0000 appended.  Don't
  500.           use this entry for dynamically assigned IP#'s.
  501.  
  502.         o baud:  Speed of the serial port connection, i.e. modem
  503.           to PC CONNECT speed.  Don't confuse with the modem-modem
  504.           CARRIER speed.  With a buffered UART the CONNECT speed
  505.           can be higher than the CARRIER speed.  Typical baud
  506.           values: 9600, 14400, 38400, 57600.  In a multi-tasking
  507.           environment, be conservative.
  508.  
  509.         o ipaddr:  your IP#, if fixed (static), or set this to
  510.           0.0.0.0 if your account uses dynamic address negotiation.
  511.  
  512.         o frame:  This identifies the frame type, PPP or SLIP.  This
  513.           line also implies the ODI logical board number, and thus
  514.           determines the  /b <board>  parameter for PPPPKT.  Usually
  515.           there will be only one frame type and <board> = 1.  If you
  516.           are using other frame types, <board> is determined in the
  517.           usual way.  Again, board numbering starts at 1, not 0.
  518.  
  519.         o Protocol TCPIP section:  For use with TCPIP.EXE, the NET.CFG
  520.           file should also contain this section.  This is used if
  521.           toggling between running ethernet app's through PPPPKT and
  522.           ODI app's via TCPIP.EXE.  For example, to test the link with
  523.           TCPIP.EXE and PING as described above, this section is needed.
  524.           Important:  do *not* include any comments in this section.
  525.           The first 4 lines (capitalized) are only relevant to LWP
  526.           users, who will have an existing NET.CFG file containing
  527.           similar lines.
  528.  
  529.   * IP# Specification Strategy.
  530.  
  531.             What is the best of the three ways to specify your IP#
  532.           to PPPPKT?  This depends on your situation.  If the direct
  533.           method, (3), works for you, it is the most convenient.  To
  534.           check if it works, bring up a PPP connection, run
  535.             SLIP_PPP c
  536.           and note your IP#, then load PPPPKT with only the /d flag
  537.             PPPPKT /d
  538.           (Alternatively, run the included SHOWIP.COM.)  If the IP#
  539.           reported by PPPPKT when it loads (or by SHOWIP) agrees with
  540.           the previous one, method (3) is working.  (Be sure to check
  541.           this if you change your PPP setup.)  In this case you can
  542.           load PPPPKT with no /i option and no "node address" line,
  543.           or use the /d flag if you do keep the "node address" line.
  544.  
  545.             If method (3) does not work, then if you use:
  546.           - Only a static ip address:  use either the "node address"
  547.             doorway (2) or set /i within a batch file.
  548.           - Only dynamic addresses:  set the IP# by hand each time
  549.             using the /i option.
  550.           - Both static and dynamic addresses:  use /i for dynamic
  551.             addresses, and a "node address" line for static.
  552.  
  553.   * Application Configuration.
  554.  
  555.             Typically you must supply the application with some of
  556.           the configuration information discussed above, as well as
  557.           other things.  Remember to use the `Mask' value determined
  558.           as discussed above and, used when loading PPPPKT.  This
  559.           ensures that the app's TCPIP stack can contact all internet
  560.           sites.
  561.  
  562.             If the app supports RARP, that may be used by the app
  563.           to determine the IP address.  This is particularly
  564.           convenient in the case of dynamic address assignment.
  565.           PPPPKT provides replies to RARP requests using the <ip#>
  566.           parameter you load it with.  The included program SHOWIP.COM
  567.           can also be useful in setting up config files when dynamic
  568.           addresses are used.  See SHOWIP.DOC.
  569.  
  570.             Other parameters such as various server addresses must
  571.           be obtained from your internet provider or networking
  572.           guru.  TCP parameters like max. segment size, max.
  573.           transmission unit, and receive window, may be required.
  574.           Configuration varies from app to app; see the app's
  575.           documentation for help.  Also, see APPHINTS.TXT.
  576.  
  577.   * TERMIN.COM .
  578.  
  579.             A suitable terminate program is part of the Crynwr
  580.           Software packet driver collection.  Try:
  581.  
  582.             boombox.micro.umn.edu:/pub/pc/packet-drivers/programs/termin.com
  583.  
  584.           or for the whole collection:
  585.  
  586.             oak.oakland.edu:/SimTel/msdos/pktdrvr/
  587.  
  588.  
  589. Technical Summary:
  590. =================
  591.  
  592.             PPPPKT conforms to revision 1.09 of the FTP Software
  593.           packet driver spec.  It is a Class 1 driver (Ethernet_II
  594.           or DEC/Intel/Xerox `Bluebook' Ethernet), of type 80
  595.           (SLIP-simulated ether) by default.  Its functionality
  596.           is 5 (basic & high-performance), *however* the only
  597.           high-performance function supported is get_parameters().
  598.           It supports no extended functions.
  599.  
  600.             From the link driver perspective, PPPPKT is an ODI
  601.           default protocol stack.
  602.  
  603.             PPPPKT emulates a local ethernet interface to the
  604.           application software, despite running over a PPP link.
  605.           The machines deemed to be on this virtual ethernet are
  606.           determined by the netmask.  The netmask computed by PPPPKT
  607.           is a function of the supplied <ip#> and <gateway> via a two
  608.           stage process.  First, a value is obtained based just on
  609.           the class (i.e. class A, B or C) of the <ip#>, specifically
  610.                         class A   ==>   255.0.0.0
  611.                         class B   ==>   255.255.0.0
  612.                         class C   ==>   255.255.255.0
  613.           If this value is consistent with the gateway's IP number,
  614.           that is, if
  615.                ( <netmask> & <gateway> ) = ( <netmask> & <ip#> )
  616.           [where & represents logical AND]
  617.           then this value is used as the netmask.  (See RFC 950.)
  618.           Otherwise, a different netmask value is chosen:  it is the
  619.           largest number which (a) is consistent in the above sense,
  620.           and (b) has a binary form of 1's followed by 0's.
  621.  
  622.             In actual fact, the <gateway> IP number can usually be
  623.           chosen to be just about anything.  It need not even belong
  624.           to a real machine, provided that no application attempts to
  625.           send a datagram addressed *at the IP level* to the gateway.
  626.           What is important is that the <gateway>, <ip#> and <netmask>
  627.           parameters form a consistent set, so that applications
  628.           believe they can send and receive packets to and from the
  629.           gateway *at the ethernet level*.  For safety and to avoid
  630.           confusion, however, it seems best to set <gateway> to a
  631.           suitable real machine.
  632.  
  633.             PPPPKT allows applications to register any protocols
  634.           having 2-byte ethertypes.  *However*, all protocols
  635.           except for IP, ARP and RARP are ignored.  An application
  636.           making essential use of other protocols will not function.
  637.           For example, you cannot directly receive or transmit IPX
  638.           packets.  Because of this 2-byte restriction, some older
  639.           versions of TERMIN.COM will not work.
  640.  
  641.             When appropriate, PPPPKT internally generates replies
  642.           to ARP and RARP packets sent by the application, while
  643.           all IP packets are sent out over the link.  Packets
  644.           received from the link are expected only to be IP in the
  645.           situations where PPPPKT will be used.  Incoming non-IP
  646.           packets are discarded, while IP packets are passed to the
  647.           app's receiver.
  648.  
  649.             The application's receive handler for ARP and RARP
  650.           packets must be capable of handling replies before the
  651.           corresponding send routine has terminated.
  652.  
  653.  
  654. Caveats:
  655. =======
  656.  
  657.         -   PPPPKT is not a "PPP class" packet driver (Class 16
  658.           or 18 of revision 1.11 of the FTP Software spec.)
  659.  
  660.         -   PPPPKT is not designed to, and will not, function with
  661.           ODI MLID's other than SLIP_PPP.
  662.  
  663.         -   The emulation of ethernet over a PPP link inevitably has
  664.           shortcomings, some of which are mentioned in the above
  665.           section.  Clearly, ethernet-speed connectivity over
  666.           dialup lines will also not be achieved with current modem
  667.           technology.  If the application is sensitive to such
  668.           timing matters, problems can arise.
  669.  
  670.         -   Despite the fact that PPPPKT is not `all things to
  671.           all applications' it can be very useful depending on the
  672.           circumstances.  It was written because the need for a
  673.           program which fills this niche was felt.
  674.  
  675.  
  676. Acknowledgements:
  677. ================
  678.  
  679.             None of the following people or organizations are in any
  680.           way responsible for maintaining and/or supporting PPPPKT.
  681.           Their indirect assistance in the form of publicly available
  682.           documentation and code is gratefully acknowledged here.
  683.           These materials, together with the RFC collection, were
  684.           essential to the development of PPPPKT.
  685.  
  686.  
  687.      (1)    Portions of PPPPKT's code originate from ODIPKT version 2.4.
  688.           ODIPKT.ASM is:
  689.  
  690.   ; (c) Copyright Daniel D. Lanciani 1991-1993.  All rights reserved.
  691.   ;
  692.   ; This unmodified source file and its executable form may be used and
  693.   ; redistributed freely.  The source may be modified, and the source or
  694.   ; executable versions built from the modified source may be used and
  695.   ; redistributed, provided that this notice and the copyright displayed by
  696.   ; the exectuable remain intact, and provided that the executable displays
  697.   ; an additional message indicating that it has been modified, and by whom.
  698.   ;
  699.   ; Daniel D. Lanciani releases this software "as is", with no express or
  700.   ; implied warranty, including, but not limited to, the implied warranties
  701.   ; of merchantability and fitness for a particular purpose.
  702.   ;
  703.   ; Please send bug reports to ddl@harvard.harvard.edu or
  704.   ;
  705.   ; Dan Lanciani
  706.   ; 185 Atlantic Road
  707.   ; Gloucester, MA 01930
  708.   ; (508) 283-4974
  709.  
  710.           Please do *not* send PPPPKT bug reports to Dan Lanciani.
  711.  
  712.      (2)    The LAN WorkPlace for DOS package and the Open Data-Link
  713.           Interface specification were developed and are Copyright by:
  714.  
  715.           Novell, Inc.
  716.           122 East 1700 South
  717.           Provo, Utah 84606
  718.  
  719.      (3)    The FTP Software packet driver specification was
  720.           developed and is Copyright by:
  721.  
  722.           FTP Software, Inc.
  723.           2 High Street
  724.           North Andover, MA 01845
  725.           (508) 685-4000
  726.  
  727.      (4)    NOTE:  PPPPKT is archived using Info-ZIP's compression
  728.           utility.  Info-ZIP's software (Zip, UnZip and related
  729.           utilities) is free and can be obtained as source code or
  730.           executables from various bulletin board services and
  731.           anonymous-ftp sites, including CompuServe's IBMPRO forum
  732.           and  ftp.uu.net:/pub/archiving/zip/*  and SimTel:
  733.           oak.oakland.edu:/SimTel/msdos/zip/* .
  734.  
  735.      (5)    Thanks to the beta testers, for their time and helpful
  736.           comments.
  737.  
  738.      (6)    Prof. Balram Bhakar, University of Manitoba, re-kindled
  739.           interest in the Novell ODI drivers.
  740.  
  741.  
  742. FINE PRINT:
  743. ==========
  744.  
  745.           All products mentioned in this documentation which are
  746.           patented, copyrighted or are trademarks are the property
  747.           of their respective owners.  Novell is a registered
  748.           trademark of Novell, Inc.  ODI, LSL and MLID are
  749.           trademarks of Novell, Inc.
  750.  
  751.           PPPPKT is Copyright 1994 by Frank Molzahn.
  752.           All applicable rights reserved.
  753.  
  754.           PPPPKT is smilley-ware.  If you think this software is
  755.           worth using (or maybe you just like the DOC), why not 
  756.           send the author your smilley?
  757.  
  758.           PPPPKT may be freely distributed provided all the files in
  759.           the package are present and unmodified.  This specifically
  760.           includes the files
  761.                 APPHINTS.TXT
  762.                 NET_CFG.SAM
  763.                 PPPPKT.COM
  764.                 PPPPKT.DOC
  765.                 README.1ST
  766.                 SHOWIP.COM
  767.                 SHOWIP.DOC
  768.           This copyright, licence and warranty disclaimer notice
  769.           applies to the entire PPPPKT package.  If you are unsure
  770.           whether or not your PPPPKT is intact, download the current
  771.           version from SimTel.
  772.  
  773.           PPPPKT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
  774.           either expressed or implied, including, but not limited
  775.           to, the implied warranties of merchantability and fitness
  776.           for a particular purpose.  The entire risk as to the
  777.           quality and performance of the product is with the user.
  778.           This documentation explicitly states that PPPPKT will not
  779.           work properly in some circumstances; the user assumes the
  780.           cost of all necessary servicing, repair or correction.
  781.  
  782.           In no event will Frank Molzahn be liable for damages,
  783.           including any general, special, incidental or consequential
  784.           damages arising out of the use of, or inability to use,
  785.           PPPPKT (including but not limited to loss of data or data
  786.           being rendered inaccurate or losses sustained by the user
  787.           or third parties or a failure of the product to operate
  788.           with any other programs), even if the author has been
  789.           advised of the possibility of such damages.
  790.  
  791.           These copyright, license, and disclaimer notices must be
  792.           included with all copies of PPPPKT.
  793.  
  794.           You may use PPPPKT if, and only if, you have read,
  795.           understood and accepted all of the above conditions.
  796.  
  797.           Please contact me to report bugs or errors in the document
  798.           (even minor ones).  If you are an application developer or
  799.           ODI/packet programmer and have constructive suggestions for
  800.           improving the performance of PPPPKT I'd be glad to hear
  801.           from you.
  802.  
  803.  
  804.           [totally] ÆΩεσöµε Software
  805.  
  806.                is:
  807.  
  808.           Frank Molzahn
  809.           7 Denton Place
  810.           Winnipeg, MB
  811.           Canada
  812.           R3R 2Z9                         molzahn@cc.umanitoba.ca
  813.